﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SanguoSharp
{
    public interface IPlayerControl
    {
        /// <summary>
        /// Gets the current <see cref="IGame"/>.
        /// </summary>
        IGame Game { get; }

        /// <summary>
        /// Gets the <see cref="IPrivatePlayerView"/> of the player.
        /// </summary>
        IPrivatePlayerView PrivatePlayerView { get; }

        /// <summary>
        /// Responds to the game with the intention to draw cards.
        /// </summary>
        void RespondDraw();
        /// <summary>
        /// Responds to the game with the specified card.
        /// </summary>
        /// <param name="id">
        /// The ID of the card.
        /// </param>
        void RespondCard(int id);
        /// <summary>
        /// Responds to the game with the specified player.
        /// </summary>
        /// <param name="id">
        /// The ID of the player.
        /// </param>
        void RespondPlayer(int id);
        /// <summary>
        /// Responds to the game with the specified character.
        /// </summary>
        /// <param name="type">
        /// A <see cref="CharacterType"/>
        /// </param>
        void RespondCharacter(CharacterType type);
        /// <summary>
        /// Responds to the game with the intention to perform no more action.
        /// </summary>
        void RespondNoAction();
        /// <summary>
        /// Responds to the game with the intention to use the player's character's ability.
        /// </summary>
        void RespondUseAbility();
    }
}
